home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / scripts / xroot < prev    next >
Text File  |  1995-05-03  |  4KB  |  177 lines

  1. :
  2. # xroot - selects from a variety of image format files
  3. #         for use as a mirror tiled root window
  4. #
  5. # Usage: xroot [-e | -j | -l | -s | -r | -u | -n # | -p # | -N # | -P # | 
  6. #               -m | directory or file name ]
  7. #
  8. # Takes as an argument the directory in which to find files
  9. # If the argument is not a directory, then it assumes it's an image file
  10. # If the argument is the string "-r", it displays a random GIF from /z/gif.
  11. # If the argument is "-e", it displays a random endo PPM
  12. # If the argument is "-l", it displays a random lyap PPM
  13. # If the argument is "-f", it displays a random Fractal PPM
  14. # If the argument is "-j", it displays a random Julia/Mandelbrot set
  15. # If the argument is "-s", it displays a random Nasa Space GIF
  16. # Additionally, arguments of "-n num" indicate select amongst the 1st num pics
  17. # "-p num" indicates pick the num'th picture
  18. # "-N num" indicates select amongst the 1st num directories
  19. # "-P num" indicates pick the num'th directory
  20. # "-m" indicates use full root window rather than tiling
  21. #
  22. # by Ron Record (rr@sco.com) 10 Sep 1992
  23. #
  24.  
  25. PROG=$0
  26. GROOT=/usr/skunk/pics/gif
  27. FILE=
  28. TILE="-rmode 2"
  29. DIR=$GROOT/fractals
  30. EDIR=$GROOT/endo
  31. HDIR=$GROOT/hop
  32. MDIR=$GROOT/spore
  33. JDIR=$GROOT/julia
  34. LDIR=$GROOT/lyap
  35. SDIR=$GROOT/xtopo
  36. CMD="xv -perfect -noresetroot -owncmap -root -quit"
  37. DEF_PIC=$LDIR/monsters.gif
  38. NUM=
  39. FNUM=
  40. DNUM=
  41. PNUM=
  42.  
  43. Usage() {
  44.     echo "Usage: $PROG [-p num | -n num | -P num | -N num | -m |"
  45.     echo "    -e | -j | -l | -r | -s | -f | -u | directory or file name ]"
  46.     echo "    Where :    "
  47.     echo "        -e indicates display an Endomorphism diagram"
  48.     echo "        -f indicates display a Fractal picture"
  49.     echo "        -j indicates display a Julia/Mandelbrot set"
  50.     echo "        -l indicates display a Lyapunov diagram"
  51.     echo "        -s indicates display a Nasa image"
  52.     echo "        -r indicates randomly display saved picture"
  53.     echo "        -m indicates use full screen rather than tiling"
  54.     echo "        -u displays this message"
  55.     echo "\n$PROG is a shell script front-end for xv."
  56.     echo "It was written by Ronald Joe Record and can be used to decorate."
  57.     echo "the root window with a GIF, TIFF, PPM or any other image xv reads."
  58.     echo "When invoked with no arguments, it displays the monster lyap GIF."
  59.     echo "To cycle through a set of images, use croot.\n"
  60.     exit 1
  61. }
  62.  
  63. Select() {
  64.     [ -d "$DIR" ] || {
  65.         echo "Warning: $DIR does not exist or is not a directory"
  66.         exit 1
  67.     }
  68.     [ "$NUM" = "" ] && NUM=`ls -l $DIR | wc -l`
  69.     [ $NUM -gt 255 ] && NUM=255
  70.     [ "$FNUM" = "" ] && FNUM=`random $NUM`
  71.     i=0
  72.  
  73.     for j in $DIR/*
  74.     do
  75.         [ "$i" = "" ] && echo "i is empty"
  76.         [ "$FNUM" = "" ] && echo "FNUM is empty with NUM = $NUM and DIR=$DIR"
  77.         [ $i = $FNUM ] && {
  78.             $CMD $TILE $j
  79.             break
  80.         }
  81.         i=`expr $i + 1`
  82.     done
  83. }
  84.  
  85. DirSelect() {
  86.     [ "$DNUM" = "" ] && {
  87.         DNUM=`ls -l $ARGDIR | wc -l`
  88.         DNUM=`expr $DNUM - 1`
  89.     }
  90.     [ "$PNUM" = "" ] && PNUM=`random $DNUM`
  91.     [ $PNUM -gt 255 ] && PNUM=255
  92.     i=0
  93.  
  94.     for j in $ARGDIR/*
  95.     do
  96.         [ "$j" = "$ARGDIR/small" ] && continue
  97.         [ $i = $PNUM ] && {
  98.             DIR=$j
  99.             break
  100.         }
  101.         i=`expr $i + 1`
  102.     done
  103. }
  104.  
  105. [ $# = 0 ] && {
  106.     $CMD $TILE $DEF_PIC
  107.     exit 0
  108. }
  109.  
  110. while case "$1" in
  111.     usage)  Usage
  112.         ;;
  113.     -m)    TILE="-max"
  114.         ;;
  115.     -n)    NUM=$2
  116.         shift
  117.         ;;
  118.     -p)    FNUM=$2
  119.         shift
  120.         ;;
  121.     -e)     DIR=$EDIR
  122.         ;;
  123.     -h)     DIR=$HDIR
  124.         ;;
  125.     -j)     DIR=$JDIR
  126.         ;;
  127.     -k)     DIR=$MDIR
  128.         ;;
  129.     -l)     DIR=$LDIR
  130.         ;;
  131.     -f) ;;
  132.     -r)     ARGDIR=$GROOT
  133.             DirSelect
  134.         ;;
  135.     -s)     DIR=$SDIR
  136.         ;;
  137.     "")     break
  138.         ;;
  139.      *) if [ -d $1 ]
  140.         then
  141.             DIR=$1
  142.         else
  143.             if [ -f $1 ]
  144.             then
  145.                 FILE=$1
  146.             else
  147.                 if [ -f $DIR/$1 ] 
  148.                 then
  149.                     FILE=$DIR/$1
  150.                 else
  151.                     if [ -d $GROOT/$1 ] 
  152.                     then
  153.                         DIR=$GROOT/$1
  154.                     else
  155.                         [ -f $EDIR/$1 ] && FILE=$EDIR/$1
  156.                         [ -f $JDIR/$1 ] && FILE=$JDIR/$1
  157.                         [ -f $LDIR/$1 ] && FILE=$LDIR/$1
  158.                         [ "$FILE" = "" ] && Usage
  159.                     fi
  160.                 fi
  161.             fi
  162.         fi
  163.         ;;
  164.         esac
  165. do
  166.     shift
  167. done
  168.  
  169. if [ "$FILE" = "" ]
  170. then
  171.     Select
  172. else
  173.     $CMD $TILE $FILE
  174. fi
  175.  
  176. exit 0
  177.